// pages/civil/my.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    toPage: 0,
    myDTO: {},
    startDate: '',
    endDate: '',
    sortOptions: ['按社情民意提交时间倒序排列', '按社情民意提交时间正序排列'],
    typeOptions: [
      '全部',
      '医疗健康类',
      '教育科技类',
      '文化体育类',
      '城市建设类',
      '环境保护类',
      '社会治理类',
      '经济发展类',
      '其他类'
    ],
    typeIndex: 0,
    statusOptions: ['全部','处理中','已驳回','初审','复审','分流','专项处理','最终批复','处理完结'],
    statusIndex: 0,
    sortIndex: 0,
    currentType: '全部',
    currentStatus: '全部',
    currentPage: 1,
    pages: 4,
    pageSize: 10,
    opinions: [],
    pageNum: 1,
    searchKeyword: null,
    enterKeyword: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 初始化加载第一页数据
    this.loadOpinions();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.loadOpinions();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.loadOpinions()
    setTimeout(() => {
      wx.stopPullDownRefresh()
      wx.showToast({
        title: '刷新成功',
        icon: 'success',
        duration: 1000
      })
    }, 1000)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  //搜索框文字的变化
  onInputChange(e) {
    this.setData({
      searchKeyword: e.detail.value
    })
  },
  // 开始日期变化处理
  onStartDateChange(e) {
    const startDate = e.detail.value;
    let {
      endDate
    } = this.data;

    // 如果结束日期已选择且早于新的开始日期，则将结束日期设置为开始日期
    if (endDate && endDate < startDate) {
      endDate = startDate;
    }
    this.setData({
      startDate,
      endDate
    });
    if (startDate !== null && endDate !== null) {
      this.loadOpinions()
    }
  },

  // 结束日期变化处理
  onEndDateChange(e) {
    const endDate = e.detail.value;
    const {
      startDate
    } = this.data;

    // 如果选择的结束日期早于开始日期，提示用户并不更新
    if (startDate && endDate < startDate) {
      wx.showToast({
        title: '结束日期不能早于开始日期',
        icon: 'none',
        duration: 2000
      });
      return;
    }

    this.setData({
      endDate
    });
    if (startDate !== null && endDate !== null) {
      this.loadOpinions()
    }
  },
  onStatusChange(e) {
    this.setData({
      statusIndex: e.detail.value,
      pageNum:1
    })
    this.loadOpinions()
  },

  onSortChange(e) {
    this.setData({
      sortIndex: e.detail.value,
      pageNum: 1
    })
    this.loadOpinions()
  },

  onTypeChange(e) {
    this.setData({
      typeIndex: e.detail.value,
      pageNum: 1
    })
    this.loadOpinions()
  },

  // 分页相关方法
  onPrevPage() {
    if (this.data.pageNum > 1) {
      this.setData({
        pageNum: this.data.pageNum - 1
      })
      this.loadOpinions()
    }
  },

  onNextPage() {
    if (this.data.pageNum < this.data.pages) {
      this.setData({
        pageNum: this.data.pageNum + 1
      })
      this.loadOpinions()
    }
  },

  onPageInput(e) {
    const page = parseInt(e.detail.value);
    if (page >= 1 && page <= this.data.pages) {
      this.setData({
        toPage: page
      });
    }
  },
  // 加载提案数据
  loadOpinions() {
    const app = getApp();
    var dto = {
      status: this.data.statusOptions[this.data.statusIndex],
      orderDirection: this.data.sortIndex == 0? 'desc':'asc',
      opinionType: this.data.typeOptions[this.data.typeIndex],
      pageNum: this.data.pageNum,
      caseReason: this.data.enterKeyword,
      startTime: this.data.startDate,
      endTime: this.data.endDate
    };
    
    app.civilApi.getMyList(dto).then(res => {
      const data = res.data;
      console.log(data);
      this.setData({
        opinions: data.data.list,
        pages: data.data.pages,
        pageNum: data.data.pageNum
      });
    });
  },
  // 确定搜索
  onConfirmSearch() {
    this.setData({
      pageNum: 1,
      enterKeyword: this.data.searchKeyword
    });
    this.loadOpinions();
  },

    // 处理分页变化
  handlePageChange(e) {
    const { pageNum } = e.detail;
    this.setData({
      pageNum
    });
    this.loadOpinions();
  },
  // 取消提案
  gotoCancel() {
    wx.navigateTo({
      url: '/pages/civil/cancel',
    })
  },

  // 提案详情
  goDetail(e) {
    const id = e.currentTarget.dataset.item;
    wx.navigateTo({
      url: `/pages/civil/detail?item=${id}`,
    });
  }
})
